1. Technical Field
The invention relates to the writing and marketing of computer software. More particularly, the invention relates to a method and system for localizing computer software.
2. Description of the Prior Art
Computer systems and other programmed devices are now being used throughout the world. While hardware configurations are similar in most venues (e.g. due to universal power supplies) software can and must vary significantly from country to country. Such variances result from differences in language and/or custom, such as between English and Swedish. For example, English menus and dialog boxes in a computer program must be translated into a Swedish language version of a software program before the program can attain any measure of acceptance and success in the Swedish market.
Variances also result from alphabet or character differences. An English language computer program must be modified to address the requirements of a ideographic based language, such as Chinese or Japanese.
The differences inherent to such translations can significantly affect the appearance and functioning of a translated computer program. For example, a translated word may not fit within the confines of a dialog box configured for English.
Other software differences result from differing laws and standards. For example, the United States restricts the encryption capabilities of exported software. Thus, the encryption standard for a domestic computer program may exceed the standard for the foreign language version of the same computer program.
Globally competitive software companies provide versions of a computer program that are compatible with the requirements of each country in which the application is marketed. Any delays in providing a compatible version of the program can reduce the market share for the application in that particular country. It is therefore of critical importance to translate, or "localize" a computer program quickly and in the most economical and efficient way.
All versions of the computer program may be released on the same date, or versions may be consecutively released. If a software company wishes to release all versions of the application at the same time, a delay in one translation postpones the release date. This can affect the program's international market share. If one version is released first, a translation delay after the initial release date may give competitors the opportunity to respond by improving their products.
Several software translation methods are known in the prior art. In one method, text editors or text-based tools are used for translation. A localization kit containing the program to be translated, and notes regarding the translation, is distributed to a localization vendor. The localization vendor then distributes the application and notes to a translator.
The translator relies on the localization kit notes to translate the program. Therefore, text-based localization relies on the localization kit as the communications tool between the software engineers/programmers and software vendors.
However, this method is subject to translation errors. It is difficult to prepare documentation and notes to track and guide the translator to properly translate documents. Errors resulting from miscommunication, and the quality control time required to correct these errors can significantly delay the release date of the translated version of the computer program. Additionally, in this method, each language version as well as each subsequent release version of a computer program is translated separately, without reference to any previous translations. This process can result in inconsistencies among the versions.
Another text-based method involves the identification and translation of text resources. Resources include data such as strings, buttons, the style of bus, icons, fonts, menus, and dialog boxes. In this method, text resources are translated and the entire computer program is then re-compiled. Thus, a resource text file, such as the Microsoft Windows .RC file, is manually translated to change such features as, windows, dialog boxes, and menus.
However, there are difficulties associated with translating such resource text file. For example, resources are typically hidden in a Microsoft Windows .RC file. It is therefore difficult for the translator to locate strings for translation. This can cause errors in the text translation. To compensate for such errors, the translator may over-translate the text file. Thus, text which should not or need not be translated is often translated, with detrimental results.
In yet another prior art translation method, the translator relies on the localization kit as the only source for identifying which resources need to be localized. However, it is difficult to re-use information from a previous release version or other foreign language version localization kit. Thus, such text-based localization kit must generally be developed independently for each language or release version of a program. This increases engineering efforts and costs.
The prior art text-based localization methods all require the binary code of the computer program to be re-compiled. For example, the translator of a resource text file must re-compile the .RC file and retest the application for each change. Furthermore, the compiled text translation may affect the functioning of the application. For example, in an English to Japanese translation, characters and buttons may be displaced on the screen. The re-compiled binary code must therefore be retested completely for even minor changes to insure that it functions correctly. This adds considerably to the time and cost required to produce a local version of the program.
It would therefore be an advantage to provide a method and system for rapidly localizing a computer program. It would be a further advantage if such system reduced, if not entirely eliminated, problems associated with over-translation.